package com.ruoyi.business.service;

import java.util.List;
import com.ruoyi.business.domain.Station;
import com.ruoyi.business.domain.vo.StationVo;

import java.io.IOException;
import javax.servlet.http.HttpServletResponse;

/**
 * 车站管理Service接口
 * 
 * @author ruoyi
 * @date 2025-03-06
 */
public interface IStationService 
{
    /**
     * 查询车站管理
     * 
     * @param id 车站管理主键
     * @return 车站管理
     */
    public Station selectStationById(Long id);

    /**
     * 查询车站管理列表
     * 
     * @param station 车站管理
     * @return 车站管理集合
     */
    public List<Station> selectStationList(Station station);

    /**
     * 新增车站管理
     * 
     * @param station 车站管理
     * @return 结果
     */
    public int insertStation(Station station);

    /**
     * 修改车站管理
     * 
     * @param station 车站管理
     * @return 结果
     */
    public int updateStation(Station station);

    /**
     * 批量删除车站管理
     * 
     * @param ids 需要删除的车站管理主键集合
     * @return 结果
     */
    public int deleteStationByIds(Long[] ids);

    /**
     * 删除车站管理信息
     * 
     * @param id 车站管理主键
     * @return 结果
     */
    public int deleteStationById(Long id);

    /**
     * 批量新增车站管理
     * @param stationList
     * @return 结果
     */
    public int insertStations(List<Station> stationList);

    public List<Station> selectStationName(String name);

    public List<Station> selectLimit();
    /**
     * 批量单查城市车站管理
     * @param name
     * @return 结果
     */
    public Station selectStationByName(String name);

    /**
     * 下载城市导入模板 - 不包含错误字段
     *
     * @param response HTTP响应
     * @throws IOException IO异常
     */
    public void downloadTemplate(HttpServletResponse response) throws IOException;

    /**
     * 导出导入错误数据 - 包含错误原因列和行号列
     *
     * @param response HTTP响应
     * @param errorDataList 错误数据列表
     * @throws IOException IO异常
     */
    public void exportErrorData(HttpServletResponse response, List<StationVo> errorDataList) throws IOException;

    /**
     * 清空所有城市数据
     * 
     * @return 结果
     */
    public int clearStation();
}
